package com.augurit.wf.jbpmex.task.multitask.proxy;

import java.util.Set;

import org.jbpm.api.model.Transition;
import org.jbpm.pvm.internal.el.Expression;
import org.jbpm.pvm.internal.history.model.HistoryTaskImpl;
import org.jbpm.pvm.internal.task.TaskImpl;

public interface IModeProxy {

	public void createSuperTask();
	
	public void createSubTasks();
	
	public void createSubTask(TaskImpl superTask, int index, String assignee);
	
	public void createSubTasksInRumtime(TaskImpl superTask, Expression assigneeExpression);
	
	public boolean isEnd(TaskImpl task);
	
	public void enableNextSuspendedTask(TaskImpl task);
	
	/**
	 * 是否每次完成一个任务都要触发打开下一任务事件
	 */
	public boolean forceEnableNextSuspendedTask();
	
	public Transition getValidTransition();
	
	public Set<HistoryTaskImpl> getSubTaskList(Long superTaskDbId);
}
